home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-20 / nos_kit3.zip / UUDCD.BAS < prev    next >
BASIC Source File  |  1990-06-08  |  2KB  |  76 lines

  1. 1000 KEY OFF
  2. 1001 DEFINT A-Z
  3. 1010 REM Trap error opening input file
  4. 1020 ON ERROR GOTO 1600
  5. 1030 CLS
  6. 1040 LOCATE 5,11
  7. 1050 PRINT STRING$(40," ")
  8. 1060 LOCATE 5,11
  9. 1070 INPUT "Enter name of input file: ", INFILE$
  10. 1080 OPEN INFILE$ FOR INPUT AS #1
  11. 1090 LOCATE 8,10
  12. 1100 PRINT STRING$(40," ")
  13. 1110 REM Trap error opening output file
  14. 1120 ON ERROR GOTO 1640
  15. 1130 LOCATE 8,10
  16. 1140 INPUT "Enter name of output file: ", OUTFILE$
  17. 1150 OPEN "R", #2,OUTFILE$, 1
  18. 1160 FIELD #2, 1 AS N$
  19. 1170 REM Trap error at end of file
  20. 1180 ON ERROR GOTO 1680
  21. 1190 REM Search for header line
  22. 1200 LINE INPUT #1,A$
  23. 1210 IF LEFT$(A$,5) <>"begin" THEN 1200
  24. 1220 LOCATE 11,10
  25. 1230 PRINT "Header = ";A$
  26. 1240 SP = ASC(" ")
  27. 1250 DIM BUF(100)
  28. 1260 RECNO# = 1
  29. 1270 REM Main loop
  30. 1280 LINE INPUT #1, A$
  31. 1290 P = 0
  32. 1300 BYTES = ASC(LEFT$(A$,1)) - SP
  33. 1310 IF BYTES = 64 THEN BYTES = 0
  34. 1320 IF BYTES = 0 THEN 1560
  35. 1330 COUNT% = INT(BYTES/3+.9): COUNT%=COUNT%*4
  36. 1340 FOR I = 2 TO COUNT% STEP 4
  37. 1350    X1 = ASC(MID$(A$,I,I)) - SP
  38. 1360    IF X1 = 64 THEN X1 = 0
  39. 1370    X2 = ASC(MID$(A$,I+1,I+1)) - SP
  40. 1380    IF X2 = 64 THEN X2 = 0
  41. 1390    X3 = ASC(MID$(A$,I+2,I+2)) - SP
  42. 1400    IF X3 = 64 THEN X3 = 0
  43. 1410    X4 = ASC(MID$(A$,I+3,I+3)) - SP
  44. 1420    IF X4 = 64 THEN X4 = 0
  45. 1440    IF P<BYTES THEN P = P + 1: BUF(P) = (X2\16) + (X1*4)
  46. 1460    IF P<BYTES THEN P = P + 1: BUF(P) = (X3\4) + ((X2 MOD 16) * 16)
  47. 1480    IF P<BYTES THEN P = P + 1: BUF(P) = X4 + ((X3 MOD 4) * 64)
  48. 1490 NEXT I
  49. 1500 FOR I = 1 TO P
  50. 1510   LSET N$ = CHR$(BUF(I))
  51. 1520   PUT #2, RECNO#
  52. 1530   RECNO# = RECNO# + 1
  53. 1540 NEXT I
  54. 1550 GOTO 1280
  55. 1560 END
  56. 1570 REM
  57. 1580 REM Error trapping routines
  58. 1590 REM
  59. 1600 LOCATE 22,20
  60. 1610 PRINT "Can't open input file"
  61. 1620 GOSUB 1740
  62. 1630 RESUME 1020
  63. 1640 LOCATE 22,20
  64. 1650 PRINT "Can't open output file"
  65. 1660 GOSUB 1740
  66. 1670 RESUME 1090
  67. 1680 LOCATE 22,20
  68. 1690 PRINT "Header line not found"
  69. 1700 GOSUB 1740
  70. 1710 LOCATE 24,1
  71. 1720 END
  72. 1740 FOR I = 1 TO 5000: NEXT I
  73. 1750 LOCATE 22,20
  74. 1760 PRINT STRING$(30," ")
  75. 1770 RETURN
  76.